package com.jlnk.androidfmc;

import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;

import com.bumptech.glide.Glide;
import com.jlnk.androidfmc.entity.Product;
import com.squareup.picasso.Picasso;

import java.util.Locale;
import java.util.Objects;

public class FourthActivity extends AppCompatActivity {

  private Toolbar toolbar; // 用于设置标题
  private LinearLayout customerContainer;
  private ImageView imageViewProduct;
  private TextView textViewProductTitle;
  private TextView textViewProductPrice;
  private TextView textViewProductDescription;
  private Product product;
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fourth);

    init();
    // 初始化 UI 组件
    initializeViews();

    // 初始化 Toolbar 和其它组件
    initToolbar();

    // 检查并获取通过 Intent 传递的 Product 对象
    product = getIntent().getParcelableExtra("PRODUCT");
    if (product != null) {
      // 如果 Product 对象不为空，则显示产品信息
      displayProductInfo(product);
    } else {
      // 如果 Product 对象为空，显示错误信息
      Log.e("FourthActivity", "Product to display is null");
      Toast.makeText(this, "无法获取产品信息", Toast.LENGTH_SHORT).show();
      // 可以选择返回或者结束活动
      finish();
    }

    // 设置添加到购物车的按钮监听器
    setAddToCartListener();
  }

  private void initializeViews() {
    // 初始化视图组件
    imageViewProduct = findViewById(R.id.image_product);
    textViewProductTitle = findViewById(R.id.text_product_title);
    textViewProductPrice = findViewById(R.id.text_product_price);
    textViewProductDescription = findViewById(R.id.text_product_description);
    toolbar = findViewById(R.id.toolbar);
  }

  private void setAddToCartListener() {
    // 获取添加到购物车的按钮并设置监听器
    LinearLayout btnAddToCart = findViewById(R.id.btn_add_to_cart);
    btnAddToCart.setOnClickListener(v -> addProductToCart(product));
  }

  // FourthActivity.java
  private void addProductToCart(Product product) {
    if (product == null) {
      // 如果 product 为空，显示错误信息
      Log.e("FourthActivity", "Product to add is null");
      Toast.makeText(this, "产品信息不完整，无法添加到购物车", Toast.LENGTH_SHORT).show();
      return;
    }

    // 创建 Intent 并添加 Product 对象
    Intent intent = new Intent(FourthActivity.this, ShoppingCartActivity.class);
    intent.putExtra("ADD_TO_CART", product);
    Log.d("FourthActivity", "Intent extras: " + intent.getExtras());
    startActivity(intent);
    Toast.makeText(this, "已添加到购物车", Toast.LENGTH_SHORT).show();
  }

  private void displayProductInfo(Product product) {
    // 使用 Glide 加载产品图片
    Glide.with(this)
            .load(product.getImagePath())
            .error(R.drawable.green) // 加载错误时显示的图片资源
            .into(imageViewProduct);

    // 设置产品标题、价格和描述
    toolbar.setTitle(product.getName());
    textViewProductTitle.setText(product.getName());
    textViewProductPrice.setText(String.format(Locale.getDefault(), "¥%.2f", product.getPrice()));
    textViewProductDescription.setText(product.getDescription());
  }

  private void init() {
    initView();
    initToolbar();
    initActions(); // 从 MainActivity 添加
  }

  private void initView() {
    toolbar = findViewById(R.id.toolbar);
    customerContainer = findViewById(R.id.action_customer_container);
    initActions();
  }

  private void initToolbar() {
    // 使用 MainActivity 的颜色设置代码
    Tools.setSystemBarColorInt(this, Color.parseColor("#0C7C41"));
    setSupportActionBar(toolbar);
    Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);
    toolbar.setNavigationOnClickListener(v -> finish());
    // 如果 FourthActivity 需要菜单，取消注释下面这行
    // toolbar.inflateMenu(R.menu.menu_main);
  }

  private void initActions() {
    // 客服按钮点击事件
    customerContainer.setOnClickListener(v -> {
      startActivity(new Intent(FourthActivity.this, ChatActivity.class));
    });
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
  }
}